#ifndef LOCATION_H
#define LOCATION_H

#include <algorithm/shared/utils/Para.h>
#include <utils/ParaUtils.h>

#include <boost/describe.hpp>

#include <string>

namespace solar
{
    class Location : public Para
    {
        public:
            Location(std::string site_name = "unknown", double longitude = 0, double latitude = 0)
                : site_name_(std::move(site_name)), longitude_(longitude), latitude_(latitude)
            {
            }

#include <utils/class_name.inc>

        private:
            std::string site_name_;
            double longitude_;
            double latitude_;
            BOOST_DESCRIBE_CLASS(Location, (Para), (), (), (site_name_, longitude_, latitude_))
    };

} // namespace solar
#define CURRENT_CLASS_NAME Location
#include <utils/class_describe_header.inc>
SOLAR_DESCRIBE_CLASS(Location, (Para), (), (), (site_name_, longitude_, latitude_))
#endif
